
mini.parse();
var grid = mini.get("datagrid1");
var tableN = mini.get("tableName");
//表名校验信号量
var tnChange = true;

// var default_data = [{
//     field: 'orderDate',
//     fieldCh: '订单日期',
//     type: '时间类型',
//     notNull: true,
//     default: true
// },{
//     field: 'orderMumber',
//     fieldCh: '订单编号',
//     type: '字符串类型',
//     notNull: true,
//     default: true
// },{
//     field: 'orderPeople',
//     fieldCh: '制单人',
//     type: '字符串类型',
//     notNull: true,
//     default: true
// },{
//     field: 'auditor',
//     fieldCh: '审核人',
//     type: '字符串类型',
//     notNull: true,
//     default: true
// },{
//     field: 'changePeople',
//     fieldCh: '变更人',
//     type: '字符串类型',
//     notNull: true,
//     default: true
// }]
// grid.setData(default_data);
//禁用默认字段（中文名可改）
// grid.on("cellbeginedit", function (e) {
//     if (e.record.default && e.field != 'fieldCh') {
//         e.cancel = true;
//         // var row = e.record;
//         // var editor = e.editor;
//         // var enabled = false;
//         // // editor.setEnabled(enabled);
//         // editor.setEnabled(enabled);
//     }
// });

//新增行
function addRow() {
    var newRow = { name: "New Row" };
    grid.addRow(newRow, 0);
    grid.beginEditCell(newRow, "field");
    var rows = grid.getSelecteds();
}
//删除行
function removeRow() {
    var rows = grid.getSelecteds();
    if (rows.length > 0) {
        grid.removeRows(rows, true);
    }else{
    	mini.alert('请至少选中一行');
    }
}
//当鼠标失去焦点的时候校验表名
function removeBlur(e){
    //得到输入的英文表名
    var tableNValue = tableN.getValue();
    if(tableNValue){
        var regs = /^[\w\_]*$/;     //只能是数字和字母和下划线
        var reg = /^[0-9]*$/;       //纯数字
        if(regs.test(tableNValue)){
            if(!reg.test(tableNValue)){
                //如果不是数字也不是空，校验与数据库表名是否重复
                $.ajax({
                    url : ajaxUrl + "/tableClass/findAll.do",
                    type : "POST",
                    success : function(data){
                        var allTables = data.data;
                        for(var i = 0; i < allTables.length; i++){
                            if(tableNValue == allTables[i].tableClassName){
                            	//信号量改变
                                tnChange = false;
                                mini.alert("表名重复，请重新填写");
                                return false;
                            }
                        }
                    }
                });
            }else{
            	//信号量改变
                tnChange = false;
                mini.alert("表名不能为纯数字");
                return false;
            }
        }else{
        	//信号量改变
            tnChange = false;
            mini.alert("表名只能为字母，数字和下划线");
            return false;
        }
    }else{
    	//信号量改变
        tnChange = false;
        mini.alert("表名不能为空");
        return false;
    }
}


//保存方法
function saveData(){
    // 判断表名不能为空
    var tableN = mini.get("tableName").getValue();
    if(tableN == ""){
        mini.alert("表名不能为空");
        return false;
    }
    //中文表名不能为空
    var tableCh = mini.get("tableChName").getValue();
    if(tableCh == ""){
        mini.alert("中文表名不能为空");
        return false;
    }
    //表名/中文表名重新赋值
    var tableName =mini.get("tableName").getValue();
    var tableChName = mini.get("tableChName").getValue();

    // 获取所有表格数据
    //var rows = grid.getSelecteds();
    var arr = grid.getData();
    var fieldArr = [];
    for(var i = 0; i < arr.length; i++){
        fieldArr.push(arr[i].field);
    }
    console.log(arrRepeat(fieldArr));
    if(arrRepeat(fieldArr)){
        mini.alert("英文字段名不能重复");
        return false;
    }
    for(var j=0;j<arr.length;j++) {
        switch(arr[j].type) {
            case '整数类型': arr[j].type = 'int';break;
            case '字符串类型': arr[j].type = 'varchar(255)';break;
            case '时间类型': arr[j].type = 'datetime';break;
            case '小数类型': arr[j].type = 'numeric';break;
            default: '';break;
        }
    }
    //对象转字符串
    var tableArr1 = JSON.stringify(arr);
    if(tnChange){
    	$.ajax({
            url: ajaxUrl + "/Base/BaseClassAndTable.do",
            type: "post",
            dataType: "json",
            traditional: true,
            data: {
                createTables:tableArr1,
                className:tableName,
                classChName:tableChName
            },
            success: function(data){
                console.log(data);
                mini.alert('保存成功！')
            },
            error : function(data){
                mini.alert('保存失败')
            }
        });
    }else{
    	mini.alert('表名有重复');
    	return false;
    }
}

grid.on("celleditenter", function (e) {
    var index = grid.indexOf(e.record);
    if (index == grid.getData().length - 1) {
        var row = {};
        grid.addRow(row);
    }
});
//判断数组中是否有重复字段
//function arrRepeat(arr){
//	var hash = new Array();
//	//var hash = {};
//    for(var i in arr) {
//        if(hash[arr[i]]) {
//            return true;
//        }
//        //不存在该元素，则赋值为true，可以赋任意值，相应的修改if判断条件即可
//        hash[arr[i]] = true;
//    }
//    return false;
//}
//是否重复
function arrRepeat(ary) {
    var nary=ary.sort();
    var n;
    for(var i=0;i<ary.length;i++){
        if (nary[i] == nary[i+1]){
            n = true;
        }else{

        }

    }
    return n;
}
//function arrRepeat(arr){
//    var arrStr = JSON.stringify(arr);
//    console.log(arrStr);
//    if(arrStr.indexOf(null)>-1) {
//    	return false;
//    }else {
//    	for (var i = 0; i < arr.length; i++) {
//    	if ((arrStr.match(new RegExp(arr[i],"g")).length)>1){
//    		return true;
//    	}
//	};
//	return false;
//    }
//}
//编辑单元格(校验：英文字段不能与数据库的英文字段重复)
//function oncellendedit(e){
//    if(e.field == "field"){
//        var tableEnName = e.value;
//        console.log(tableEnName);
//        console.log(arr);
//    }
//}
//当表名（英文）改变的时候
function valuechanged(event){
	tnChange = true;
}
//如果更改类型选择，值变化
//编辑值提交前发生
function OnCellCommitEdit(e) {
	console.log(e);
    var grid = e.sender;
    var record = e.record;
    var field = e.field, value = e.value;
    if (field == "type") {                 
        grid.updateRow(record, { value2: "", value_name: "" });
    }
}
//编辑开始前发生
function OnCellBeginEdit(e) {    
    var grid = e.sender;
    var record = e.record;
    var field = e.field, value = e.value;
    var editor = e.editor;
    if (field == "value2") {
    	$.ajax({
    		url : '../data/countrys.txt',
    		success : function(data){
    			var valueArr = mini.decode(data);
    			if(valueArr[0].text == "整数类型(int)"){
    				console.log(valueArr[0].value);
    				editor.setValue(valueArr[0].value);
    			}
    			if(valueArr[1].text == "字符串类型类型(varchar(max))"){
    				console.log(valueArr[1].value);
    				editor.setValue(valueArr[1].value);
    			}
    			if(valueArr[2].text == "字符串类型(nchar)"){
    				console.log(valueArr[2].value);
    				editor.setValue(valueArr[2].value);
    			}
    			if(valueArr[3].text == "字符串类型(nvarchar)"){
    				console.log(valueArr[3].value);
    				editor.setValue(valueArr[3].value);
    			}
    			if(valueArr[4].text == "字符串类型(nvarchar(max))"){
    				console.log(valueArr[4].value);
    				editor.setValue(valueArr[4].value);
    			}
    			if(valueArr[5].text == "字符串类型(ntext)"){
    				console.log(valueArr[5].value);
    				editor.setValue(valueArr[5].value);
    			}
    			if(valueArr[6].text == "时间类型(datetime)"){
    				console.log(valueArr[6].value);
    				editor.setValue(valueArr[6].value);
    			}
    			if(valueArr[7].text == "小数类型(numeric)"){
    				console.log(valueArr[7].value);
    				editor.setValue(valueArr[7].value);
    			}
    			if(valueArr[8].text == "超文本类型(text)"){
    				console.log(valueArr[8].value);
    				editor.setValue(valueArr[8].value);
    			}
    			if(valueArr[9].text == "数值类型(tinyint)"){
    				console.log(valueArr[9].value);
    				editor.setValue(valueArr[9].value);
    			}
    			if(valueArr[10].text == "数值类型(smallint)"){
    				console.log(valueArr[10].value);
    				editor.setValue(valueArr[10].value);
    			}
    			if(valueArr[11].text == "时间类型(datetime2)"){
    				console.log(valueArr[11].value);
    				editor.setValue(valueArr[11].value);
    			}
    			if(valueArr[12].text == "时间类型(smalldatetime)"){
    				console.log(valueArr[12].value);
    				editor.setValue(valueArr[12].value);
    			}
    		},
    		error : function(data){
    			console.log(data);
    		}
    	})
//        var id = record.dept_id;
//        if (id) {
//            var url = "../data/AjaxService.aspx?method=GetPositionsByDepartmenId&id=" + id
//            editor.setUrl(url);
//        } else {
//            e.cancel = true;
//        }

    }
}